package top.cardone.data.service;

import java.util.List;
import java.util.Map;

/**
 * 创建、查询、修改、删除 service
 *
 * @author yaohaitao
 */
public interface CrudService {
	/**
	 * 删除
	 *
	 * @param delete
	 * @return 影响行数
	 */
	int delete(Object delete);

	/**
	 * 删除
	 *
	 * @return 影响行数
	 */
	int deleteAll();

	/**
	 * 删除
	 *
	 * @param ids 等于那些属性
	 * @return 影响行数
	 */
	int deleteByIds(Object ids);

	/**
	 * 删除
	 *
	 * @param deleteList
	 * @return 影响行数
	 */
	int[] deleteList(List<Object> deleteList);

	/**
	 * 查询
	 *
	 * @param findList 等于那些属性
	 * @return 对象集合
	 */
	List<Map<String, Object>> findList(Object findList);

	/**
	 * 查询
	 *
	 * @param findOne 等于那些属性
	 * @return 返回对象
	 */
	Map<String, Object> findOne(Object findOne);

	/**
	 * 插入
	 *
	 * @param insert 对象
	 * @return 影响行数
	 */
	int insert(Object insert);

	/**
	 * 插入
	 *
	 * @param insert 对象
	 * @return 影响行数
	 */
	int insertByNotExists(Object insert);

	/**
	 * 插入
	 *
	 * @param insertList 对象
	 * @return 影响行数
	 */
	int[] insertList(List<Object> insertList);

	/**
	 * 插入
	 *
	 * @param insertList 对象
	 * @return 影响行数
	 */
	int[] insertListByNotExists(List<Object> insertList);

	/**
	 * 查询
	 *
	 * @param readList
	 * @return 返回数据
	 */
	List<Object> readList(Object readList);

	/**
	 * 查询
	 *
	 * @param readOne
	 * @return 返回数据
	 */
	Object readOne(Object readOne);

	/**
	 * 保存
	 *
	 * @param save 保存对象
	 * @return 插入后数据库值
	 */
	int save(Object save);

	/**
	 * 更新
	 *
	 * @param update 对象
	 * @return 影响行数
	 */
	int update(Object update);

	/**
	 * 更新
	 *
	 * @param updateList 对象
	 * @return 影响行数
	 */
	int[] updateList(List<Object> updateList);

	/**
	 * 保存
	 *
	 * @param saveList 对象
	 * @return 影响行数
	 */
	int[][] saveList(List<Object> saveList);
}
